/*
                  InterfaceOptions Class Definition
*/

#ifndef INTERFACEOPTIONS_H
#define INTERFACEOPTIONS_H

#include <string>
#include <boost/lexical_cast.hpp>

#include "Interface.h"

using boost::lexical_cast;
using boost::bad_lexical_cast;

using namespace std;

class InterfaceOptions : public Interface
{
    public:
        InterfaceOptions();
        ~InterfaceOptions();

        int Initialise();
        InterfaceType HandleInput(const SDL_Event& event);
        int Draw(SDL_Surface *surface);

        InterfaceType CheckWidgetEvents();

    protected:
        FrameGroup frmgOptions;

        Frame *frmOptionTabs;
        Button *btnGeneral;
        Button *btnVideo;
        Button *btnAudio;
        Button *btnControls;
        Button *btnNetwork;

        Frame *frmOptions;
        Label *lblResolution;
        Listbox *lstResolution;
        Checkbox *chkFullscreen;
        Label *lblMetaserver;
        TextBox *txtMetaserver;
        Label *lblPort;
        TextBox *txtPort;

        Frame *frmOptionbar;
        Button *btnBack;
        Button *btnSave;

        Imagebox imgBackground;

        void SaveSettings();
};

#endif
